Computing technology has contributed enormously to the advancement of humankind. Computing systems come in a wide variety of physical forms including desktop computers, laptop computers, personal digital assistants, telephones, and even devices that have not been conventionally thought of as computing systems such as, for example, refrigerators and automobiles. Thus, a computing system may be any device or system that has a processor and a memory of any type.
One common application that computing technology supports are graphical modeling tools (also called “graphical designers”). Graphical modeling tools facilitate the orderly and efficient construction of graphical models. Graphical models include the visual representation of a collection of interrelated objects. Graphical models may be used in a different way by a wide variety of domains. For instance, workflows, organization charts, electrical circuits, software architectures, software flowcharts, may each be represented using graphical models. There may be literally thousands of different applications in which graphical modeling tools may be useful. In each case, the types of objects and interrelationships may be quite different. Even within a single domain of application, there may be definite preferences on how the objects and interrelationships are displayed. For instance, one bank may prefer one graphical modeling style for representing economic transactions, while another bank may represent a different graphical modeling style for economic transactions.
Building graphical modeling tools is a challenging and time consuming task. The building of a typical graphical designer may involve a software developer implementing a design surface that implements the graphical notation, a toolbox that allows the user to drag and drop element onto the design surface, a mechanism for representing properties of the objects on the design surface—the properties representing meaningful information about the problem the user is trying to model, and other User Interface (UI) elements to navigate through the model data.
Errors in the graphical models created by the graphical modeling tools are often detected by checking constraints against the model. The constraints typically include rules that the graphical designer builder desires the graphical model to follow. However, many graphical modeling tools require that a constraint be hard coded for a specific graphical model. When one considers the large amount of possible graphical models, the task of creating hard coded constraints for each model may seem ominous.
In addition, when a constraint is checked against the graphical model, the graphical modeling tool often identifies objects of the model that do not conform with the constraint. A user of the graphical modeling tool must then determine which object of a visual diagram corresponds to the non-conforming object of the graphical model. This task may be time consuming and difficult, especially if the visual diagram is complex.